﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ThomasGIS.Geometries
{
    public interface IPolyline : IGeometry
    {
        // 获取当前折线多个部件的长度，返回一个double数组
        double[] GetLength();

        // 将折线按节点切分为单线，返回一个SingleLine类型的迭代器
        IEnumerable<SingleLine> SplitByNode();

        // 将折线按部件切分为但部件，返回一个Polyline类型的迭代器
        IEnumerable<Polyline> SplitByPart();

        // 计算当前折线对象的BoundaryBox
        BoundaryBox CalculateBox();

        // 计算当前折线对象的shapefile文件中对应的字节长度

        IEnumerable<Point> GetPointEnumerable();

        IEnumerable<int> GetPartEnumerable();

        bool AddPart(IEnumerable<Point> pointList);

        int GetPartNumber();

        int GetPointNumber();
    }
}
